home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # Amanda, The Advanced Maryland Automatic Network Disk Archiver
- # Copyright (c) 1991-1998 University of Maryland at College Park
- # All Rights Reserved.
- #
- # Permission to use, copy, modify, distribute, and sell this software and its
- # documentation for any purpose is hereby granted without fee, provided that
- # the above copyright notice appear in all copies and that both that
- # copyright notice and this permission notice appear in supporting
- # documentation, and that the name of U.M. not be used in advertising or
- # publicity pertaining to distribution of the software without specific,
- # written prior permission. U.M. makes no representations about the
- # suitability of this software for any purpose. It is provided "as is"
- # without express or implied warranty.
- #
- # U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
- # BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- # OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- # CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- #
- # Author: James da Silva, Systems Design and Analysis Group
- # Computer Science Department
- # University of Maryland at College Park
- #
-
- #
- # amdump: Manage running one night's Amanda dump run.
- #
-
- prefix=/usr/freeware
- exec_prefix=${prefix}
- sbindir=/usr/freeware/bin
- libexecdir=/usr/freeware/libexec
-
- confdir=/usr/freeware/etc/amanda
-
- PATH=$libexecdir:/usr/freeware/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/ucb
- export PATH
-
- USE_VERSION_SUFFIXES="no"
- if test "$USE_VERSION_SUFFIXES" = "yes"; then
- SUF="-2.4.1p1"
- else
- SUF=
- fi
-
- if [ $# -ne 1 ]; then
- echo Usage: amdump$SUF conf
- exit 1
- fi
-
- conf=$1
- if [ ! -d $confdir/$conf ]; then
- echo "amdump$SUF: could not find directory $confdir/$conf"
- exit 1
- fi
-
- cd $confdir/$conf
-
- logdir=`$libexecdir/getconf$SUF logdir`
- errfile=$logdir/amdump
- tapecycle=`$libexecdir/getconf$SUF tapecycle`
- dumpuser=`$libexecdir/getconf$SUF dumpuser`
- runuser=`whoami`
-
- if [ $runuser != $dumpuser ]; then
- echo "amdump: must be run as user $dumpuser"
- exit 1
- fi
-
- if test -f hold; then
- echo "amdump: waiting for hold file to be removed" >&2
- while test -f hold; do
- sleep 60
- done
- fi
-
- if test -f $errfile || test -f $logdir/log; then
- echo "amdump: amdump or amflush is already running, or you must run amcleanup" >&2
- exit 1
- fi
-
- umask 077
-
- # Plan and drive the dumps.
- exec </dev/null >$errfile 2>&1
- echo "amdump: start at `date`"
- $libexecdir/planner$SUF | $libexecdir/driver$SUF
- echo "amdump: end at `date`"
-
- # Send out a report on the dumps.
- exec </dev/null >/dev/null 2>&1
- $sbindir/amreport$SUF
-
- # Keep a debug log through the tapecycle plus a couple of days.
- maxdays=`expr $tapecycle + 2`
- days=1
- # First, find out the last existing errfile,
- # to avoid ``infinite'' loops if tapecycle is infinite
- while [ $days -lt $maxdays ] && [ -f $errfile.$days ]; do
- days=`expr $days + 1`
- done
- # Now, renumber the existing log files
- while [ $days -ge 2 ]; do
- ndays=`expr $days - 1`
- mv $errfile.$ndays $errfile.$days
- days=$ndays
- done
- mv $errfile $errfile.1
-
- # Trim the index file to those for dumps that still exist.
- $libexecdir/amtrmidx$SUF $conf
-
- exit 0
-